package oj_qmfx.oj_10;

import java.util.Scanner;

// 定义链表节点类
class Node {
    int data;
    Node next;

    public Node(int data) {
        this.data = data;
        this.next = null;
    }
}

// 定义单链表类
class LinkList {
    private Node first;

    // 无参构造函数
    public LinkList() {
        first = new Node(0); // 生成头结点
        first.next = null;
    }

    // 有参构造函数
    public LinkList(int[] a, int n, int flag) {
        /* 传入一个长度为n的数组a，初始化单链表 */
        first = new Node(0); // 生成头结点
        if (flag == 1) { // 头插法

            for (int i = 0;i < n; i++){
                Node newNode = new Node(a[i]);
                newNode.next = first.next;
                first.next = newNode;
            }

        }
        else if (flag == 0){ // 尾插法
            Node rear = first;
            for (int i = 0; i < n; i++){
                Node newNode = new Node(a[i]);
                rear.next = newNode;
                rear = newNode;
            }
        }
    }

    // 判断单链表是否为空
    public boolean isEmpty() {
        /* 头结点的引用域为null时，单链表为空，否则不为空 */
        return first.next == null;
    }

    // 输出链表(最后一个元素之后没有空格， 然后换行)
    public void printList() {
        /* 如果链表为空，则什么都不输出 */
        if (isEmpty()){
            return;
        }
        /* 链表元素每两个之间用空格隔开，最后一个元素后没有空格，然后换行 */

        Node p = first.next;
        while (p != null && p.next != null){
            System.out.print(p.data + " ");
            p = p.next;
        }
        System.out.println(p.data);
    }

    // 返回单链表第 i 个元素
    public int getElement(int i) {
        /* 位置从1开始计数，若单链表中不存在位置i，返回-1，否则返回该位置的数值 */
        Node p = first.next;
        int loc = 1;
        while (p != null && loc < i){
            p = p.next;
            loc++;
        }
        if (p == null || i<1){
            return -1;
        }
        return p.data;

    }

    // 返回元素 x 第一次出现的位置
    public int locate(int x) {
        /* 位置从1开始计数，若单链表中没有元素x，返回-1，若查找成功，返回序号*/
        Node p = first.next;
        int loc = 1;

        while (p != null){
            if (p.data == x){
                return loc;
            }
            p = p.next;
            loc++;
        }
        return -1;
    }

//    插入值
    public void insert(int i, int x){
        Node p = first;
        int loc = 0;
        while (p != null && loc < i -1){
            p = p.next;
            loc++;
        }
        if (p == null || i < 1){
            return;
        }
        Node newNode = new Node(x);
        newNode.next =p.next;
        p.next = newNode;
    }

//    删除
    public int delete(int i){
        if (isEmpty()){
            return -1;
        }
        Node p = first;
        int loc = 1;
        while (p != null && loc < i){
            p = p.next;
            loc++;
        }
        if (p == null || i < 1){
            return -1;
        }
        int t = p.next.data;
        p.next = p.next.next;
        return t;
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
//        int n = scanner.nextInt();
//        int flag = scanner.nextInt();
//        int[] a = new int[n];
//        for (int i = 0; i < n; i++) {
//            a[i] = scanner.nextInt();
//        }
//        LinkList linkList = new LinkList(a, n, flag);
//        int operate = scanner.nextInt();// 读取操作类型
//        if (operate == 1) {
//            int index = scanner.nextInt();// 读取要获取元素的位置
//            System.out.println(linkList.getElement(index));
//        } else if (operate == 2) {
//            int x = scanner.nextInt();// 读取要查找的元素
//            System.out.println(linkList.locate(x));
//        }

        int n = scanner.nextInt();
        int m = scanner.nextInt();
        int f = scanner.nextInt();
        int[] a = new int[n];
        for(int i = 0;i<n;i++){
            a[i] = scanner.nextInt();
        }
        LinkList linkList = new LinkList(a,n,f);
        for (int i = 0;i < m; i++){
            int x = scanner.nextInt();
//            int y = scanner.nextInt();
//            linkList.insert(x,y);
            int res = linkList.delete(x);
            System.out.print(res + "#");
            linkList.printList();
        }
        scanner.close();
    }
}